Systems and methods for virtual remote control of streamed media

ABSTRACT

Systems and methods are described for providing remote control of separate media sources over a network using, for example, pop-up windows graphically depicting remote control devices within corresponding tabbed windows of a web browser. A browser plug-in or add-on application provides a graphical depiction of a remote control device associated with each media source and receives a command from the viewer via interaction with the graphical depiction of the remote control device. The command is transmitted across the network to the placeshifting device to modify a media stream provided by the desired media source.

TECHNICAL FIELD

The present disclosure generally relates to techniques for controlling the and viewing a media stream that is transmitted over a data connection.

BACKGROUND

Recently, consumers have expressed significant interest in “place shifting” devices that allow viewing of television or other media content at locations other than their primary television set. Place shifting devices typically packetize media content that can be transmitted over a local or wide area network to a portable computer, mobile phone, personal digital assistant, remote television or other remote device capable of playing back the packetized media stream for the viewer. Placeshifting therefore allows consumers to view their media content from remote locations such as other rooms, hotels, offices, and/or any other locations where portable media player devices can gain access to a wireless or other communications network.

In the context of viewing media content over a network browser (e.g., a web browser), it is possible to stream media from a variety of sources within separate windows and/or browser “tabs.” In such cases, it may be difficult and confusing to remotely control the corresponding media content from a variety of media sources, as each media source will typically have its own corresponding remote control protocol and user interface. Thus, in the context of browser-based viewing of content from multiple sources, it is prohibitively difficult and non-intuitive to control multiple media devices with a single, generalized remote control interface when the user is already comfortable using the remote control devices that were provided with such systems.

It is therefore desirable to create systems and methods for remotely controlling a media stream that is transmitted over a network or other data connection. These and other desirable features and characteristics will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and this background section.

BRIEF SUMMARY

According to various exemplary embodiments, systems and methods are described for providing remote control of separate media sources over a network using, for example, pop-up windows graphically depicting remote control devices within corresponding tabbed windows of a web browser. In accordance with one embodiment, a method includes: selecting a media source via a web browser; providing, within the web browser, a graphical depiction of a remote control device associated with the media source; receiving a command from a user via the graphical depiction of the remote control device; transmitting the command to a remotely-located placeshifting device via a network to modify a media stream provided by the media source; and presenting the modified media stream within the web browser.

A media player in accordance with one embodiment includes: a web browser configured to provide a plurality of tabbed windows for display on a display device, a first tabbed window to display media content from a first media source of the plurality of media sources via the network and a second tabbed window to display media content from a second media source of the plurality of media sources via the network; and a browser plug-in configured to provide graphical depictions of a plurality of remote control devices, wherein a graphical depiction of a first remote control device of the plurality of remote control devices is associated with the first media source and a graphical depiction of a second remote control device of the plurality of remote control devices is associated with the second media source.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

Exemplary embodiments will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and

FIG. 1 is a block diagram of an exemplary media encoding system;

FIG. 2 is a block diagram of an exemplary media encoding device; and

FIG. 3 is a conceptual overview of a tabbed browser an corresponding graphical depictions of remote control devices.

DETAILED DESCRIPTION

The following detailed description of the invention is merely exemplary in nature and is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any theory presented in the preceding background or the following detailed description.

According to various embodiments, systems and methods are described for providing remote control of separate media sources over a network using, for example, pop-up windows or virtual remote control devices provided within corresponding tabbed windows of a web browser.

Turning now to the drawing figures and with initial reference to FIG. 1, an exemplary placeshifting system 100 suitably includes a placeshifting encoder system 102 that receives media content 122 from a content source 106, encodes the received content into a streaming format, and then transmits the encoded media stream 120 to a media player 104 over network 110. The media player 104 suitably receives the encoded stream 120, decodes the stream, and presents the decoded content to a viewer on a television or other display 108. In various embodiments, a server 112 may also be provided to communicate with encoder system 102 and/or player 104 via network 110 to assist these devices in locating each other, maintaining security, providing or receiving content or information, and/or any other features as desired. This feature is not required in all embodiments, however, and the concepts described herein may be deployed in any data streaming application or environment, including placeshifting but also any other media or other data streaming situation.

Placeshifting encoder system 102 is any component, hardware, software logic and/or the like capable of transmitting a packetized stream of media content over network 110. In various embodiments, placeshifting device 102 incorporates suitable encoder and/or transcoder (collectively “encoder”) logic to convert audio/video or other media data 122 into a packetized format that can be transmitted over network lo. The media data 122 may be received in any format, and may be received from any internal or external source 106 such as any sort of broadcast, cable or satellite television programming source, a “video-on-demand” or similar source, a digital video disk (DVD) or other removable media, a video camera, and/or the like. Encoder system 102 encodes media data 122 to create media stream 120 in any manner. In various embodiments, encoder system 102 contains a transmit buffer 105 that temporarily stores encoded data prior to transmission on network 110. As buffer 105 fills or empties, one or more parameters of the encoding (e.g., the bit rate of media stream 120) may be adjusted to maintain desirable picture quality and data throughput in view of the then-current network performance. As described more fully below, various embodiments are able to calculate a current encoding rate and a current network transfer rate, and are able to adjust the encoding rate as the network transfer rate changes. Changes in the network transfer rate may be identified from, for example, changes in the utilization of the outgoing buffer 105.

Several examples of encoding systems 102 may be implemented using any of the various SLINGBOX products available from Sling Media of Foster City, Calif., although other products could be used in other embodiments. Many different types of encoder systems 102 are generally capable of receiving media content 122 from an external source 106 such as any sort of digital video recorder (DVR), set top box (STB), cable or satellite programming source, DVD player, and/or the like. In such embodiments, encoder system 102 may additionally provide commands 124 to the source 106 to produce desired signals 122. Such commands 124 may be provided over any sort of wired or wireless interface, such as an infrared or other wireless transmitter that emulates remote control commands receivable by the source 106. Other embodiments, however, particularly those that do not involve placeshifting, may modify or omit this feature entirely.

In other embodiments, encoder system 102 may be integrated with any sort of content receiving or other capabilities typically affiliated with source 106. Encoder system 102 may be a hybrid STB or other receiver, for example, that also provides transcoding and placeshifting features. Such a device may receive satellite, cable, broadcast and/or other signals that encode television programming or other content received from an antenna, modem, server and/or other source. The receiver may further demodulate or otherwise decode the received signals to extract programming that can be locally viewed and/or place shifted to a remote player 104 as appropriate. Such devices 102 may also include a content database stored on a hard disk drive, memory, or other storage medium to support a personal or digital video recorder (DVR) feature or other content library as appropriate. Hence, in some embodiments, source 106 and encoder system 102 may be physically and/or logically contained within a common component, housing or chassis.

In still other embodiments, encoder system 102 is a software program, applet or the like executing on a conventional computing system (e.g., a personal computer). In such embodiments, encoder system 102 may encode, for example, some or all of a screen display typically provided to a user of the computing system for placeshifting to a remote location. One device capable of providing such functionality is the SlingProjector product available from Sling Media of Foster City, Calif., which executes on a conventional personal computer, although other products could be used as well.

Media player 104 is any device, component, module, hardware, software and/or the like capable of receiving a media stream 120 from one or more encoder systems 102. In various embodiments, remote player 104 is personal computer (e.g., a “laptop” or similarly portable computer, although desktop-type computers could also be used), a mobile phone, a personal digital assistant, a personal media player (such as the ARCHOS products available from the Archos company of Igny, France) or the like. In many embodiments, remote player 104 is a general purpose computing device that includes a media player application in software or firmware that is capable of securely connecting to placeshifting encoder system 102, as described more fully below, and of receiving and presenting media content to the user of the device as appropriate. The media play application may include web-based software that runs within a WWW browser (e.g., as implemented in the WebSlingPlayer), or may use one or more stand-alone applications.

In other embodiments, however, media player 104 is a standalone or other separate hardware device capable of receiving the media stream 120 via any portion of network 110 and decoding the media stream 120 to provide an output signal 126 that is presented on a television or other display 108. One example of a standalone media receiver 104 is the SLINGCATCHER product available from Sling Media of Foster City, Calif., although other products could be equivalently used.

Network 110 is any digital or other communications network capable of transmitting messages between senders (e.g., encoder system 102) and receivers (e.g., receiver 104). In various embodiments, network 110 includes any number of public or private data connections, links or networks supporting any number of communications protocols. Network 110 may include the Internet, for example, or any other network based upon TCP/IP or other conventional protocols. In various embodiments, network 110 also incorporates a wireless and/or wired telephone network, such as a cellular communications network for communicating with mobile phones, personal digital assistants, and/or the like. Network 110 may also incorporate any sort of wireless or wired local area networks, such as one or more IEEE 802.3 and/or IEEE 802.11 networks.

Encoder system 102 and/or player 104 are therefore able to communicate with player 104 in any manner (e.g., using any sort of data connections 128 and/or 125, respectively). Such communication may take place over a wide area link that includes the Internet and/or a telephone network, for example; in other embodiments, communications between devices 102 and 104 may take place over one or more wired or wireless local area links that are conceptually incorporated within network 110. In various equivalent embodiments, encoder system 102 and receiver 104 may be directly connected via any sort of cable (e.g., an Ethernet cable or the like) with little or no other network functionality provided.

Many different placeshifting scenarios could be formulated based upon available computing and communications resources, consumer demand and/or any other factors. In various embodiments, consumers may wish to placeshift content within a home, office or other structure, such as from a placeshifting encoder system 102 to a desktop or portable computer located in another room. In such embodiments, the content stream will typically be provided over a wired or wireless local area network operating within the structure. In other embodiments, consumers may wish to placeshift content over a broadband or similar network connection from a primary location to a computer or other remote player 104 located in a second home, office, hotel or other remote location. In still other embodiments, consumers may wish to placeshift content to a mobile phone, personal digital assistant, media player, video game player, automotive or other vehicle media player, and/or other device via a mobile link (e.g., a GSM/EDGE or CDMA/EVDO connection, any sort of 3G or subsequent telephone link, an IEEE 802.11 “Wi-fi” link, and/or the like). Several examples of placeshifting applications available for various platforms are provided by Sling Media of Foster City, Calif., although the concepts described herein could be used in conjunction with products and services available from any source.

Encoder system 102, then, generally creates a media stream 120 that is routable on network 110 based upon content 122 received from media source 106. To that end, and with reference now to FIG. 2, encoder system 102 typically includes an encoder module 202, a buffer 105 and a network interface 206 in conjunction with appropriate control logic 205. In operation, encoder module 202 typically receives media content 122 from an internal or external source 106, encodes the data into the desired format for media stream 120, and stores the encoded data in buffer 105. Network interface 206 then retrieves the formatted data from buffer 105 for transmission on network 110. Control module 205 suitably monitors and controls the encoding and network transmit processes carried out by encoding module 202 and network interface 206, respectively, and may perform other features as well. Encoder system 102 may also have a module 208 or other feature capable of generating and providing commands 124 to an external media source 106, as described above.

In the exemplary embodiment shown in FIG. 2, modules 202, 105, 205, 206 and 208 may be implemented in software or firmware residing in any memory, mass storage or other storage medium within encoder system 102 in source code, object code and/or any other format. Such features may be executed on any sort of processor or microcontroller executing within encoder system 102. In various embodiments, encoder system 102 is implemented as a system on a chip (SoC) type system with integrated processing, storage and input/output features. Various SoC hardware implementations are available from Texas Instruments, Conexant Systems, Broadcom Inc., and other suppliers as appropriate. Other embodiments may use any number of discrete and/or integrated processing components, memories, input/output features and/or other features as desired.

As noted above, creating a media stream 120 typically involves encoding and/or transcoding an input media stream 122 received from an internal or external media source 106 into a suitable digital format that can be transmitted on network 110. Generally, the media stream 120 is placed into a standard or other known format (e.g., the WINDOWS MEDIA format available from the Microsoft Corporation of Redmond, Wash. although other formats such as the QUICKTIME format, REALPLAYER format, MPEG format, and/or the like could be used in any other embodiments) that can be transmitted on network 110. This encoding may take place, for example, in any sort of encoding module 202 as appropriate. Encoding module 202 may be any sort of hardware (e.g., a digital signal processor or other integrated circuit used for media encoding), software (e.g., software or firmware programming used for media encoding that executes on the SoC or other processor described above), or the like. Encoding module 202 is therefore any feature that receives media data 122 from the internal or external source 106 (e.g., via any sort of hardware and/or software interface) and encodes or transcodes the received data into the desired format for transmission on network 110. Although FIG. 2 shows a single encoding module 202, in practice system 102 may include any number of encoding modules 202. Different encoding modules 202 may be selected based upon preference of player 104, network conditions, and/or the like.

In various embodiments, encoder 202 may also apply other modifications, transforms and/or filters to the received content before or during the transcoding process. Video signals, for example, may be resized, cropped and/or skewed. Similarly, the color, hue and/or saturation of the signal may be altered, and/or noise reduction or other filtering may be applied. Audio signals may be modified by adjusting volume, sampling rate, mono/stereo parameters, noise reduction, multi-channel sound parameters and/or the like. Digital rights management encoding and/or decoding may also be applied in some embodiments, and/or other features may be applied as desired.

In accordance with one aspect of the present invention, media player 104 includes a network browser (e.g., a web browser) 130 working in conjunction with an add-on, plug-in, or other associated software component (generally, “browser application” 132) configured to provide a graphical depiction of a remote control device associated with each media source 106, receive a command from the viewer via interaction with the graphical depiction of the remote control device, and transmit the command across network 110 to placeshifting device 102 to modify a media stream provided by the desired media source 106.

More particularly, referring now to FIG. 3 in conjunction with FIG. 1, a browser window 302 is presented or otherwise provided on display 108 in any suitable manner, and is configured to interact with a user in the conventional fashion (e.g., via various input/output devices such as computer mice, keyboards, touchpads, and the like). Browser window 302 is produced via browser software 130 whose instructions are executed by a suitable operating system and microprocessor within media player 104. Many types of browser software 130 may be used in connection with the invention, including, for example, Microsoft Internet Explorer, Mozilla Firefox, Google Chrome, and the like.

In one embodiment, each browser window 302 may include one or more tabbed windows 308, each associated with a particular tab 304, 306. That is, when the user clicks on or otherwise selects a tab 304 or 306, a corresponding tabbed window is presented within browser window 302.

In the tabbed window environment as shown in FIG. 3, it is desirable for each tabbed window 308 to be associated with one of a plurality of the media sources 106 selected by the viewer. That is, tab 304 might be used to view a program saved stored in digital video recorder (DVR), while tab 306 may be used to view a real-time television broadcast. While only two tabs are illustrated in the figure, any number of tabs may be employed.

Within each tabbed window 308, the streamed media 314 is displayed along with any other associated channel information that is desired. In the illustrated embodiment, for example, a list of channels and/or a program guide 312 is displayed.

In accordance with one aspect, a graphical depiction of a remote control device (“virtual remote control”) 310 is displayed, corresponding to the specific media source 106 being controlled, and consequently the streamed media 314 being viewed. Virtual remote control 310 is preferably fully interactive, allowing buttons 311 to be pressed, and providing visual feedback of a type that is intuitive with respect to the actual remote control device. In general, a command is received from the viewer via interaction with the virtual remote control, and that command is transmitted across the network 110 to the remotely-located placeshifting device 102 to modify the media stream provided by the desired media source 106.

The user may then click on (or otherwise interact with) the buttons and other interface objects displayed within virtual remote control 310 to change channels (e.g., channels displayed in window 312), change volume, and indeed control media source 106 in any way that the user might otherwise do using an actual, physical remote control device. In the event that the browser 302 is displayed within a device including a keyboard, various keys may be bound to commands provided by virtual remote control 310 (e.g., up and down arrows may correspond to volume, and the like).

When the user selects a different tab 304, 306, the previously displayed virtual remote control 310 is removed from the display and replaced by the virtual remote control 310 appropriate for the media source 106 being viewed. The user is also preferably given the option of moving, minimizing, scaling, opening, and closing virtual remote control 310 as desired.

As each tabbed window may be used with different media sources, each window will also include separate instances of the virtual remote control 310. The graphics and interactivity provided by each virtual remote control 310 are preferably matched to the real-world remote control used in connection with the corresponding media source 106; however, in some instances a generic or more generalized graphics may be used (e.g., in cases where the exact type of remote control device is not known).

The nature of browser application 132 used to produce virtual remote control 310 may vary depending upon the type of browser used, the operating system, and many other factors. In one embodiment, an “add-on” or “plug-in” (e.g., Active-X plug-in) is designed to work with one or more popular web browsers (e.g., Internet Explorer, Firefox, Safari, and/or Opera), and is implemented in any suitable software language—e.g., Java, Javascript, C#, Actionscript, Objective-C, and/or developed using libraries of software tools developed for a particular browser. In one embodiment, the graphical depictions of the remote control devices are repositionable outside the boundary of the web browser

While several exemplary embodiments have been presented in the foregoing detailed description, it should be appreciated that a vast number of alternate but equivalent variations exist, and the examples presented herein are not intended to limit the scope, applicability, or configuration of the invention in any way. The term “exemplary” is used herein to represent one example, instance or illustration that may have any number of alternates. Any implementation described herein as exemplary is not necessarily to be construed as preferred or advantageous over other implementations. Thus, various changes may be made in the function and arrangement of elements described without departing from the scope of the claims and their legal equivalents. 

What is claimed is:
 1. A method comprising: selecting a media source via a web browser configured to provide a plurality of tabbed windows, each tabbed window associated configured to display streamed media received from one of a plurality of media sources; providing, within a first tabbed window of the plurality of tabbed windows, a first graphical depiction of a remote control device associated with the streamed media displayed within the first tabbed window, and providing, within a second tabbed window of the plurality of tabbed windows, a second graphical depiction of a remote control device that includes at least one interface object not included within the first graphical depiction and is configured to display streamed media received from a second media source within the second tabbed window; receiving a command from a user via the graphical depiction of the remote control device; transmitting the command to a remotely-located placeshifting device via a network to modify a media stream provided by a selected media source; and presenting the modified media stream within the first tabbed window; wherein the graphical depiction of the remote control device is a pop-up window running within the web browser and, during viewing of the media source, only one of the instances of the graphical depiction of the remote control device is displayed, and all other instances are hidden.
 2. The method of claim 1 wherein the selected media source is a media device, and wherein the placeshifting device communicates the command to the media device via a wireless interface.
 3. The method of claim 1 wherein the selected media source comprises at least one of a digital video recorder, a television receiver, a set-top box, and a digital video disk player.
 4. The method of claim 1, wherein the graphical depiction of the remote control device is provided via an Active-X control.
 5. A method of viewing media content received from a plurality of media sources via a network, the method comprising: providing a web browser configured to provide a plurality of tabbed windows for display on a display device; presenting a first tabbed window to display streamed media content from a first media source of the plurality of media sources via the network; presenting a second tabbed window to display streamed media content from a second media source of the plurality of media sources via the network; and providing graphical depictions of a plurality of remote control devices, such that a graphical depiction of a first remote control device of the plurality of remote control devices is associated with the first media source and displayed within the first tabbed window, and a graphical depiction of a second remote control device of the plurality of remote control devices is associated with the second media source and displayed within the second tabbed window, further wherein the graphical depiction of the second remote control device includes at least one interface object not included within the graphical depiction of the first remote control device; wherein the graphical depiction of the remote control device is a pop-up window running within the web browser and, during viewing of the media source, only one of the instances of the graphical depiction of the remote control device is displayed, and all other instances are hidden.
 6. The method of claim 5, wherein the step of providing graphical depictions includes providing an Active-X control plug-in.
 7. The method of claim 5, further including providing a graphical depiction of a program guide.
 8. The method of claim 7, wherein the remote control devices are configured to select a program within the program guide.
 9. The method of claim 5, wherein the graphical depictions of the remote control devices are repositionable outside the boundary of the web browser.
 10. A media player for presenting media content received from a plurality of media sources via a network, the media player comprising: a display device; a web browser configured to provide a plurality of tabbed windows for display on the display device, a first tabbed window to display streamed media content from a first media source of the plurality of media sources via the network and a second tabbed window to display streamed media content from a second media source of the plurality of media sources via the network; and a browser plug-in configured to provide graphical depictions of a plurality of remote control devices, wherein a graphical depiction of a first remote control device of the plurality of remote control devices is displayed within the first tabbed window and associated with the first media source, and a graphical depiction of a second remote control device of the plurality of remote control devices is displayed within the second tabbed window and associated with the second media source, further wherein the graphical depiction of the second remote control device includes at least one interface object not included within the graphical depiction of the first remote control device; and a processor communicatively coupled to the display device and configured to produce the plurality of tabbed windows for display on the display device; wherein the graphical depiction of the remote control device is a pop-up window running within the web browser and, during viewing of the media source, only one of the instances of the graphical depiction of the remote control device is displayed, and all other instances are hidden.
 11. The media player of claim 10, wherein the browser plug-in is an Active-X control. 